
#include <iostream>
#include <set>
#include <map>
#include <string>
#include <vector>

using namespace std;

void test()
{
//    string s[] = { "苹果", "香蕉", "苹果", "草莓", "香蕉", "苹果", "香蕉", "草莓" };
//    map<string, int> m1;
//
//    for (auto& str : s)
//    {
//        m1[str] ++ ;
//    }
//
//    map<string, int>::iterator it = m1.begin();
//    while (it != m1.end())
//    {
//        cout << it->first << ':' << it->second << endl;
//        ++ it;
//    }
//    cout << endl;
//

    map<string, string> mp;
    mp.insert(pair<string, string>("string", "字符串"));
    mp.insert(pair<string, string>("insert", "插入"));
    mp.insert(pair<string, string>("huangyong", "黄勇"));
    mp.insert(pair<string, string>("liaojian", "廖鉴"));
    mp.insert(pair<string, string>("erase", "删除"));
    mp.insert(pair<string, string>("algorithm", "算法"));
    mp.insert(pair<string, string>("return", "返回"));

    map<string, string>::iterator it = mp.begin();
    while (it != mp.end())
    {
        cout << (*it).first << ':' << it->second << endl;
        ++ it;
    }
    cout << endl;
    
    mp.erase(mp.find("huangyong"));

    it = mp.begin();
    while (it != mp.end())
    {
        cout << it->first << ':' << it->second << endl;
        ++ it;
    }
    cout << endl;
}

int main()
{
    test();

//    set<int> s = { 8,7,6,5,4,3,2,1,0 };
//
//    for (auto e : s)
//    {
//        cout << e << ' ';
//    }
//    cout << endl;
//
//    set<int>::iterator it = s.find(3);
//    while (it != s.end())
//    {
//        cout << *it << ' ';
//        ++ it;
//    }
//    cout << endl;
//
//    cout << *(s.find(3)) << endl;
//    s.erase(s.find(3));
//
//    for (auto e : s)
//    {
//        cout << e << ' ';
//    }
//    cout << endl;
//
//    it = s.begin();
//    while (it != s.end())
//    {
//        if (*it % 2 == 1)
//        {
//            s.erase(*it);
//        }
//        ++ it;
//    }
//
//    for (auto e : s)
//    {
//        cout << e << ' ';
//    }
//    cout << endl;


    return 0;
}
